# 新式类写法
class A: # 经典类：不由内置类型派生出来的类
    pass

class B(): pass

# object --对象 python为所有对象提供基类 提供了一些内置属性和方法，可以使用dir（）查看
# python3中如果一个类没有继承任何类，则默认继承object类，因此python3都是新式类
class C(object): # 新式类：继承object类或者该类的子类都是新式类 -- 推荐使用
    pass

print(dir(object))


# 多继承
# 弊端 容易引发冲突
# 子类可以拥有多个父类，并且具有所有父类的属性和方法
class Father(object):
    def money(self):
        print("father's money")

class Mother(object):
    def appearance(self):
        print("mother's appearance")
    def money(self):
        print("mother's money")

class Son(Mother,Father):
    def money(self):
        super().money()
        print("son's money")

son = Son()
# son.appearance()
# 如果不同父类存在同名方法，根据子类继承的顺序前后决定，就近原则
# 开发时 需要尽量避免这种情况
son.money()
# python中内置属性__mro__可以查看方法搜索顺序
print(Son.__mro__)
